using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._GeocodingTools._Portal
{
    /// <summary>
    /// <para>Geocode File</para>
    /// <para>Converts large local tables of addresses or places into points in a feature class or as a stand-alone .csv or .xls table. This tool uses locators hosted on an ArcGIS Enterprise portal.</para>
    /// <para>将地址或地点的大型本地表转换为要素类中的点，或作为独立的.csv或.xls表。此工具使用托管在 ArcGIS Enterprise 门户上的定位器。</para>
    /// </summary>    
    [DisplayName("Geocode File")]
    public class GeocodeFile : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public GeocodeFile()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_table">
        /// <para>Input Table</para>
        /// <para>The input table that contains addresses or places to geocode in CSV, XLS, or XLSX format or in a file geodatabase table.</para>
        /// <para>包含要以 CSV、XLS 或 XLSX 格式或文件地理数据库表进行地理编码的地址或位置的输入表。</para>
        /// </param>
        /// <param name="_locator">
        /// <para>Locator</para>
        /// <para><xdoc>
        ///   <para>The portal locator that will be used to geocode the table.</para>
        ///   <para>You can select a locator from the populated list of locators on the active portal or browse the active portal for other available locators. Locators that have been set as utility services on the active portal will be available by default.</para>
        ///   <para>The ArcGIS World Geocoding Service is disabled for this tool. Use the Geocode Addresses tool if you want to use the ArcGIS World Geocoding Service.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>将用于对表进行地理编码的门户定位器。</para>
        ///   <para>您可以从活动门户上填充的定位器列表中选择一个定位器，也可以在活动门户中浏览其他可用定位器。默认情况下，已在活动门户上设置为实用程序服务的定位器将可用。</para>
        ///   <para>此工具禁用了 ArcGIS World Geocoding Service。如果要使用 ArcGIS World Geocoding Service，请使用地理编码地址工具。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_address_fields">
        /// <para>Address Field Mapping</para>
        /// <para><xdoc>
        ///   <para>The address fields used by the locator are mapped to fields in the input table of addresses. Select Single Field if the complete address is stored in one field in the input table, for example, 303 Peachtree St NE, Atlanta, GA 30308. Select Multiple Fields if the input addresses are divided into multiple fields such as Address, City, State, and ZIP for a general United States address.</para>
        ///   <para>Some locators support multiple input addresses fields such as Address, Address2, and Address3. In this case, the address component can be separated into multiple fields and the address fields will be concatenated at the time of geocoding. For example, 100, Main St, and Apt 140 across three fields or 100 Main St and Apt 140 across two fields both become 100 Main St Apt 140 when geocoding.</para>
        ///   <para>If you choose not to map an optional input address field used by the locator to a field in the input table of addresses, specify that there is no mapping using <None> in place of a field name.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定位器使用的地址字段将映射到地址输入表中的字段。如果完整地址存储在输入表中的一个字段中，请选择“单个字段”，例如，303 Peachtree St NE， Atlanta， GA 30308。如果输入地址分为多个字段，例如美国通用地址的地址、城市、州和邮政编码，请选择多个字段。</para>
        ///   <para>某些定位器支持多个输入地址字段，例如地址、地址 2 和地址 3。在这种情况下，地址组件可以分成多个字段，并且地址字段将在地理编码时连接起来。例如，地理编码时，跨三个字段的 100、Main St 和 Apt 140 或跨两个字段的 100 Main St 和 Apt 140 都变为 100 Main St Apt 140。</para>
        /// <para>如果选择不将定位器使用的可选输入地址字段映射到输入地址表中的字段，请指定不使用 <None> in 代替字段名称进行映射。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_output_type">
        /// <para>Output Type</para>
        /// <para><xdoc>
        ///   <para>Specifies the file type to which the geocode results will be written.</para>
        ///   <bulletList>
        ///     <bullet_item>CSV—A .csv file will be returned.</bullet_item><para/>
        ///     <bullet_item>Feature class—A feature class in a file geodatabase will be returned.</bullet_item><para/>
        ///     <bullet_item>XLS—An .xls file will be returned.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定将地理编码结果写入的文件类型。</para>
        ///   <bulletList>
        ///     <bullet_item>CSV—将返回.csv文件。</bullet_item><para/>
        ///     <bullet_item>要素类 - 将返回文件地理数据库中的要素类。</bullet_item><para/>
        ///     <bullet_item>XLS—将返回.xls文件。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// </param>
        /// <param name="_output_location">
        /// <para>Output Location</para>
        /// <para><xdoc>
        ///   <para>The folder where the output geocoding results will be written.</para>
        ///   <para>If the output is a .csv or .xls file, an output file will be placed in the specified folder.</para>
        ///   <para>If the output is a feature class, an output file geodatabase will be created and placed in the specified folder, and the new file geodatabase will contain the geocoded feature class. The output file geodatabase and feature class in the file geodatabase will have the same name.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>将写入输出地理编码结果的文件夹。</para>
        ///   <para>如果输出是.csv或.xls文件，则输出文件将放置在指定的文件夹中。</para>
        ///   <para>如果输出为要素类，则将创建输出文件地理数据库并将其放置在指定文件夹中，并且新文件地理数据库将包含地理编码要素类。文件地理数据库中的输出文件地理数据库和要素类将具有相同的名称。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_output_name">
        /// <para>Output Name</para>
        /// <para>The name of the output geocoded results.</para>
        /// <para>输出地理编码结果的名称。</para>
        /// </param>
        public GeocodeFile(object _in_table, object _locator, object _address_fields, _output_type_value? _output_type, object _output_location, object _output_name)
        {
            this._in_table = _in_table;
            this._locator = _locator;
            this._address_fields = _address_fields;
            this._output_type = _output_type;
            this._output_location = _output_location;
            this._output_name = _output_name;
        }
        public override string ToolboxName => "Geocoding Tools";

        public override string ToolName => "Geocode File";

        public override string CallName => "geocoding.GeocodeFile";

        public override List<string> AcceptEnvironments => ["outputCoordinateSystem", "workspace"];

        public override object[] ParameterInfo => [_in_table, _locator, _address_fields, _output_type.GetGPValue(), _output_location, _output_name, _country, _location_type.GetGPValue(), _category, _out_feature_class, _out_table, _output_fields.GetGPValue()];

        /// <summary>
        /// <para>Input Table</para>
        /// <para>The input table that contains addresses or places to geocode in CSV, XLS, or XLSX format or in a file geodatabase table.</para>
        /// <para>包含要以 CSV、XLS 或 XLSX 格式或文件地理数据库表进行地理编码的地址或位置的输入表。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Table")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_table { get; set; }


        /// <summary>
        /// <para>Locator</para>
        /// <para><xdoc>
        ///   <para>The portal locator that will be used to geocode the table.</para>
        ///   <para>You can select a locator from the populated list of locators on the active portal or browse the active portal for other available locators. Locators that have been set as utility services on the active portal will be available by default.</para>
        ///   <para>The ArcGIS World Geocoding Service is disabled for this tool. Use the Geocode Addresses tool if you want to use the ArcGIS World Geocoding Service.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>将用于对表进行地理编码的门户定位器。</para>
        ///   <para>您可以从活动门户上填充的定位器列表中选择一个定位器，也可以在活动门户中浏览其他可用定位器。默认情况下，已在活动门户上设置为实用程序服务的定位器将可用。</para>
        ///   <para>此工具禁用了 ArcGIS World Geocoding Service。如果要使用 ArcGIS World Geocoding Service，请使用地理编码地址工具。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Locator")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _locator { get; set; }


        /// <summary>
        /// <para>Address Field Mapping</para>
        /// <para><xdoc>
        ///   <para>The address fields used by the locator are mapped to fields in the input table of addresses. Select Single Field if the complete address is stored in one field in the input table, for example, 303 Peachtree St NE, Atlanta, GA 30308. Select Multiple Fields if the input addresses are divided into multiple fields such as Address, City, State, and ZIP for a general United States address.</para>
        ///   <para>Some locators support multiple input addresses fields such as Address, Address2, and Address3. In this case, the address component can be separated into multiple fields and the address fields will be concatenated at the time of geocoding. For example, 100, Main St, and Apt 140 across three fields or 100 Main St and Apt 140 across two fields both become 100 Main St Apt 140 when geocoding.</para>
        ///   <para>If you choose not to map an optional input address field used by the locator to a field in the input table of addresses, specify that there is no mapping using <None> in place of a field name.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定位器使用的地址字段将映射到地址输入表中的字段。如果完整地址存储在输入表中的一个字段中，请选择“单个字段”，例如，303 Peachtree St NE， Atlanta， GA 30308。如果输入地址分为多个字段，例如美国通用地址的地址、城市、州和邮政编码，请选择多个字段。</para>
        ///   <para>某些定位器支持多个输入地址字段，例如地址、地址 2 和地址 3。在这种情况下，地址组件可以分成多个字段，并且地址字段将在地理编码时连接起来。例如，地理编码时，跨三个字段的 100、Main St 和 Apt 140 或跨两个字段的 100 Main St 和 Apt 140 都变为 100 Main St Apt 140。</para>
        /// <para>如果选择不将定位器使用的可选输入地址字段映射到输入地址表中的字段，请指定不使用 <None> in 代替字段名称进行映射。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Address Field Mapping")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _address_fields { get; set; }


        /// <summary>
        /// <para>Output Type</para>
        /// <para><xdoc>
        ///   <para>Specifies the file type to which the geocode results will be written.</para>
        ///   <bulletList>
        ///     <bullet_item>CSV—A .csv file will be returned.</bullet_item><para/>
        ///     <bullet_item>Feature class—A feature class in a file geodatabase will be returned.</bullet_item><para/>
        ///     <bullet_item>XLS—An .xls file will be returned.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定将地理编码结果写入的文件类型。</para>
        ///   <bulletList>
        ///     <bullet_item>CSV—将返回.csv文件。</bullet_item><para/>
        ///     <bullet_item>要素类 - 将返回文件地理数据库中的要素类。</bullet_item><para/>
        ///     <bullet_item>XLS—将返回.xls文件。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Type")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public _output_type_value? _output_type { get; set; }

        public enum _output_type_value
        {
            /// <summary>
            /// <para>CSV</para>
            /// <para>CSV—A .csv file will be returned.</para>
            /// <para>CSV—将返回.csv文件。</para>
            /// </summary>
            [Description("CSV")]
            [GPEnumValue("CSV")]
            _CSV,

            /// <summary>
            /// <para>Feature class</para>
            /// <para>Feature class—A feature class in a file geodatabase will be returned.</para>
            /// <para>要素类 - 将返回文件地理数据库中的要素类。</para>
            /// </summary>
            [Description("Feature class")]
            [GPEnumValue("FEATURE_CLASS")]
            _FEATURE_CLASS,

            /// <summary>
            /// <para>XLS</para>
            /// <para>XLS—An .xls file will be returned.</para>
            /// <para>XLS—将返回.xls文件。</para>
            /// </summary>
            [Description("XLS")]
            [GPEnumValue("XLS")]
            _XLS,

        }

        /// <summary>
        /// <para>Output Location</para>
        /// <para><xdoc>
        ///   <para>The folder where the output geocoding results will be written.</para>
        ///   <para>If the output is a .csv or .xls file, an output file will be placed in the specified folder.</para>
        ///   <para>If the output is a feature class, an output file geodatabase will be created and placed in the specified folder, and the new file geodatabase will contain the geocoded feature class. The output file geodatabase and feature class in the file geodatabase will have the same name.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>将写入输出地理编码结果的文件夹。</para>
        ///   <para>如果输出是.csv或.xls文件，则输出文件将放置在指定的文件夹中。</para>
        ///   <para>如果输出为要素类，则将创建输出文件地理数据库并将其放置在指定文件夹中，并且新文件地理数据库将包含地理编码要素类。文件地理数据库中的输出文件地理数据库和要素类将具有相同的名称。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Location")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _output_location { get; set; }


        /// <summary>
        /// <para>Output Name</para>
        /// <para>The name of the output geocoded results.</para>
        /// <para>输出地理编码结果的名称。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Name")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _output_name { get; set; }


        /// <summary>
        /// <para>Country</para>
        /// <para><xdoc>
        ///   <para>The country or countries to search for the geocoded addresses. This parameter is available for locators that support a country parameter and will limit geocoding to the selected countries. Making a country selection will improve the accuracy of geocoding in most cases. If a field representing countries in the Input Table parameter is mapped to the Country Role: Field Name, the country value from the Input Table parameter will override the Country parameter.</para>
        ///   <para>If no country is specified, geocoding is performed on all supported countries of the locator.</para>
        ///   <para>The Country parameter is not supported for all locators.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>要搜索地理编码地址的一个或多个国家/地区。此参数可用于支持国家/地区参数的定位器，并将地理编码限制为所选国家/地区。在大多数情况下，选择国家/地区将提高地理编码的准确性。如果将“输入表”参数中表示国家/地区的字段映射到“国家/地区角色：字段名称”，则“输入表”参数中的国家/地区值将覆盖“国家/地区”参数。</para>
        ///   <para>如果未指定国家/地区，则对定位器支持的所有国家/地区执行地理编码。</para>
        ///   <para>并非所有定位器都支持 Country 参数。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Country")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public List<object> _country { get; set; } = null;


        /// <summary>
        /// <para>Preferred Location Type</para>
        /// <para><xdoc>
        ///   <para>Specifies the preferred output geometry for PointAddress matches. The options for this parameter are Routing location, which is the side of street location that can be used for routing and Address location, which is the location that represents the rooftop or parcel centroid for the address. If the preferred location does not exist in the data, the default location will be returned instead. For geocode results with Addr_type=PointAddress, the x,y attribute values describe the coordinates of the address along the street, while the DisplayX and DisplayY values describe the rooftop or building centroid coordinates.</para>
        ///   <para>This parameter is not supported for all locators.</para>
        ///   <bulletList>
        ///     <bullet_item>Address location—Geometry for geocode results that represent an address location—such as a rooftop location, parcel centroid, or front door—will be returned.</bullet_item><para/>
        ///     <bullet_item>Routing location—Geometry for geocode results that represent a location close to the side of the street that can be used for vehicle routing will be returned. This is the default.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定 PointAddress 匹配的首选输出几何图形。此参数的选项包括路径定位（路径位置）和地址位置（表示地址的屋顶或宗地质心的位置）。如果数据中不存在首选位置，则将改为返回默认位置。对于具有 Addr_type=PointAddress 的地理编码结果，x，y 属性值描述沿街道的地址坐标，而 DisplayX 和 DisplayY 值描述屋顶或建筑物质心坐标。</para>
        ///   <para>并非所有定位器都支持此参数。</para>
        ///   <bulletList>
        ///     <bullet_item>地址位置 - 将返回表示地址位置（例如屋顶位置、宗地质心或前门）的地理编码结果的几何图形。</bullet_item><para/>
        ///     <bullet_item>路径定位 - 将返回表示可用于车辆路径规划的靠近街道一侧的位置的地理编码结果的几何图形。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Preferred Location Type")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _location_type_value _location_type { get; set; } = _location_type_value._ROUTING_LOCATION;

        public enum _location_type_value
        {
            /// <summary>
            /// <para>Routing location</para>
            /// <para>Routing location—Geometry for geocode results that represent a location close to the side of the street that can be used for vehicle routing will be returned. This is the default.</para>
            /// <para>路径定位 - 将返回表示可用于车辆路径规划的靠近街道一侧的位置的地理编码结果的几何图形。这是默认设置。</para>
            /// </summary>
            [Description("Routing location")]
            [GPEnumValue("ROUTING_LOCATION")]
            _ROUTING_LOCATION,

            /// <summary>
            /// <para>Address location</para>
            /// <para>Address location—Geometry for geocode results that represent an address location—such as a rooftop location, parcel centroid, or front door—will be returned.</para>
            /// <para>地址位置 - 将返回表示地址位置（例如屋顶位置、宗地质心或前门）的地理编码结果的几何图形。</para>
            /// </summary>
            [Description("Address location")]
            [GPEnumValue("ADDRESS_LOCATION")]
            _ADDRESS_LOCATION,

        }

        /// <summary>
        /// <para>Category</para>
        /// <para><xdoc>
        ///   <para>Limits the types of places the locator searches, eliminating false positive matches and potentially speeding up the search process. When no category is used, geocoding is performed on all supported categories. Not all category values are supported for all locations and countries. In general, the Category parameter can be used for the following:
        ///   <bulletList>
        ///     <bullet_item>Limit matches to specific place types or address levels  </bullet_item><para/>
        ///     <bullet_item>Avoid fallback matches to unwanted address levels  </bullet_item><para/>
        ///     <bullet_item>Disambiguate coordinate searches  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>This parameter is not supported for all locators.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        /// <para>限制定位器搜索的地点类型，消除误报匹配，并可能加快搜索过程。如果未使用任何类别，则对所有支持的类别执行地理编码。并非所有地区和国家/地区都支持所有类别值。通常，Category 参数可用于以下用途：
        ///   <bulletList>
        ///     <bullet_item>将匹配限制为特定地点类型或地址级别</bullet_item><para/>
        ///     <bullet_item>避免回退匹配到不需要的地址级别</bullet_item><para/>
        ///     <bullet_item>消除坐标搜索的歧义</bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>并非所有定位器都支持此参数。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Category")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public List<object> _category { get; set; } = null;


        /// <summary>
        /// <para>Output Feature Class</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Feature Class")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_feature_class { get; set; }


        /// <summary>
        /// <para>Output Table</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Table")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_table { get; set; }


        /// <summary>
        /// <para>Output Fields</para>
        /// <para><xdoc>
        ///   <para>Specifies which locator output fields are returned in the geocode results.</para>
        ///   <para>This parameter can be used with input locators created with the Create Locator tool or Create Feature Locator tool published to Enterprise 10.9 or later. Composite locators that contain at least one locator created with the Create Address Locator tool do not support this parameter.</para>
        ///   <bulletList>
        ///     <bullet_item>All— Includes all available locator output fields in the geocode results. This is the default.</bullet_item><para/>
        ///     <bullet_item>Location Only—The Shape field is stored if the geocode result is a feature class. The Shape X and Shape Y fields are stored if the result is either a .csv or .xls file. The original field names from the Input Table parameter are maintained with their original field names. Rematching geocode results is not available with this option.</bullet_item><para/>
        ///     <bullet_item>Minimal—Adds the following fields that describe the location and how well it matches to information in the locator in the geocode results: Shape, Status, Score, Match_type, Match_addr, and Addr_type. The original field names from the Input Table parameter are maintained with their original field names.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定在地理编码结果中返回的定位器输出字段。</para>
        ///   <para>此参数可用于使用发布到 Enterprise 10.9 或更高版本的创建定位器工具创建的输入定位器。包含至少一个使用创建地址定位器工具创建的定位器的复合定位器不支持此参数。</para>
        ///   <bulletList>
        ///     <bullet_item>全部 - 在地理编码结果中包括所有可用的定位器输出字段。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>仅位置 - 如果地理编码结果为要素类，则存储形状字段。如果结果是.csv或.xls文件，则存储“形状 X”和“形状 Y”字段。输入表参数中的原始字段名称将与其原始字段名称一起保留。此选项不提供重新匹配地理编码结果。</bullet_item><para/>
        ///     <bullet_item>最小值 - 添加以下字段，用于描述位置及其与地理编码结果中定位器中信息的匹配程度：形状、状态、分数、Match_type、Match_addr和Addr_type。输入表参数中的原始字段名称将与其原始字段名称一起保留。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Fields")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _output_fields_value _output_fields { get; set; } = _output_fields_value._ALL;

        public enum _output_fields_value
        {
            /// <summary>
            /// <para>All</para>
            /// <para>All— Includes all available locator output fields in the geocode results. This is the default.</para>
            /// <para>全部 - 在地理编码结果中包括所有可用的定位器输出字段。这是默认设置。</para>
            /// </summary>
            [Description("All")]
            [GPEnumValue("ALL")]
            _ALL,

            /// <summary>
            /// <para>Minimal</para>
            /// <para>Minimal—Adds the following fields that describe the location and how well it matches to information in the locator in the geocode results: Shape, Status, Score, Match_type, Match_addr, and Addr_type. The original field names from the Input Table parameter are maintained with their original field names.</para>
            /// <para>最小值 - 添加以下字段，用于描述位置及其与地理编码结果中定位器中信息的匹配程度：形状、状态、分数、Match_type、Match_addr和Addr_type。输入表参数中的原始字段名称将与其原始字段名称一起保留。</para>
            /// </summary>
            [Description("Minimal")]
            [GPEnumValue("MINIMAL")]
            _MINIMAL,

            /// <summary>
            /// <para>Location Only</para>
            /// <para>Location Only—The Shape field is stored if the geocode result is a feature class. The Shape X and Shape Y fields are stored if the result is either a .csv or .xls file. The original field names from the Input Table parameter are maintained with their original field names. Rematching geocode results is not available with this option.</para>
            /// <para>仅位置 - 如果地理编码结果为要素类，则存储形状字段。如果结果是.csv或.xls文件，则存储“形状 X”和“形状 Y”字段。输入表参数中的原始字段名称将与其原始字段名称一起保留。此选项不提供重新匹配地理编码结果。</para>
            /// </summary>
            [Description("Location Only")]
            [GPEnumValue("LOCATION_ONLY")]
            _LOCATION_ONLY,

        }

        public GeocodeFile SetEnv(object outputCoordinateSystem = null, object workspace = null)
        {
            base.SetEnv(outputCoordinateSystem: outputCoordinateSystem, workspace: workspace);
            return this;
        }

    }

}